/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package net.hnilica.cisteniulic.dto;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import java.util.Set;

/**
 *
 * @author swosh
 */
public class TerminExcel {
    private String nazUlice;
    private Date terCis;
    private String nazAkce;
    private Set<Integer> cisOrientacni;
    private String newNazUlice;
    private Date newTerCis;
    private String newNazAkce;
    private Set<Integer> newCisOrientacni;
    private String nazUliceInfo;
    private String terCisInfo;
    private String nazAkceInfo;
    private String cisOrientacniInfo;
    private String newNazUliceInfo;
    private String newTerCisInfo;
    private String newNazAkceInfo;
    private String newCisOrientacniInfo;
    private String info;
    private int row;
    private int sheet;

    public TerminExcel(){}

    public TerminExcel(String nazUlice, Date terCis, String nazAkce, Set<Integer>  cisOrientacni,
            String newNazUlice, Date newTerCis,String newNazAkce,Set<Integer>  newCisOrientacni) {
        this.nazUlice = nazUlice;
        this.terCis = terCis;
        this.nazAkce = nazAkce;
        this.cisOrientacni = cisOrientacni;
        this.newNazUlice = newNazUlice;
        this.newTerCis = newTerCis;
        this.newNazAkce = newNazAkce;
        this.newCisOrientacni = newCisOrientacni;
    }

    public TerminCisOri getTerminCisOri() {
        TerminCisOri terminCisOri = new TerminCisOri(nazUlice, terCis, nazAkce, cisOrientacni);
        return terminCisOri;
    }

    public void setTerminCisOri(TerminCisOri terminCisOri) {
        this.nazUlice = terminCisOri.getNazUlice();
        this.terCis = terminCisOri.getTerCis();
        this.nazAkce = terminCisOri.getNazAkce();
        this.cisOrientacni = terminCisOri.getCisOrientacni();
    }

    public String getNazUlice() {
        return nazUlice;
    }

    public void setNazUlice(String nazUlice) {
        this.nazUlice = nazUlice;
    }

    public Date getTerCis() {
        return terCis;
    }

    public void setTerCis(Date terCis) {
        this.terCis = terCis;
    }

    public String getNazAkce() {
        return nazAkce;
    }

    public void setNazAkce(String nazAkce) {
        this.nazAkce = nazAkce;
    }

    public Set<Integer>  getCisOrientacni() {
        return cisOrientacni;
    }

    public void setCisOrientacni(Set<Integer>  cisOrientacni) {
        this.cisOrientacni = cisOrientacni;
    }

    public String getNewNazUlice() {
        return newNazUlice;
    }

    public void setNewNazUlice(String newNazUlice) {
        this.newNazUlice = newNazUlice;
    }

    public Date getNewTerCis() {
        return newTerCis;
    }

    public void setNewTerCis(Date newTerCis) {
        this.newTerCis = newTerCis;
    }

    public String getNewNazAkce() {
        return newNazAkce;
    }

    public void setNewNazAkce(String newNazAkce) {
        this.newNazAkce = newNazAkce;
    }

    public Set<Integer>  getNewCisOrientacni() {
        return newCisOrientacni;
    }

    public void setNewCisOrientacni(Set<Integer>  newCisOrientacni) {
        this.newCisOrientacni = newCisOrientacni;
    }
    public String getNazUliceInfo() {
        return nazUliceInfo;
    }

    public void setNazUliceInfo(String nazUliceInfo) {
        this.nazUliceInfo = nazUliceInfo;
    }

    public String getTerCisInfo() {
        return terCisInfo;
    }

    public void setTerCisInfo(String terCisInfo) {
        this.terCisInfo = terCisInfo;
    }

    public String getNazAkceInfo() {
        return nazAkceInfo;
    }

    public void setNazAkceInfo(String nazAkceInfo) {
        this.nazAkceInfo = nazAkceInfo;
    }

    public String getCisOrientacniInfo() {
        return cisOrientacniInfo;
    }

    public void setCisOrientacniInfo(String cisOrientacniInfo) {
        this.cisOrientacniInfo = cisOrientacniInfo;
    }

    
    public String getNewNazUliceInfo() {
        return newNazUliceInfo;
    }

    public void setNewNazUliceInfo(String newNazUliceInfo) {
        this.newNazUliceInfo = newNazUliceInfo;
    }

    public String getNewTerCisInfo() {
        return newTerCisInfo;
    }

    public void setNewTerCisInfo(String newTerCisInfo) {
        this.newTerCisInfo = newTerCisInfo;
    }

    public String getNewNazAkceInfo() {
        return newNazAkceInfo;
    }

    public void setNewNazAkceInfo(String newNazAkceInfo) {
        this.newNazAkceInfo = newNazAkceInfo;
    }

    public String getNewCisOrientacniInfo() {
        return newCisOrientacniInfo;
    }

    public void setNewCisOrientacniInfo(String newCisOrientacniInfo) {
        this.newCisOrientacniInfo = newCisOrientacniInfo;
    }

    public String getInfo(){
        return info;
    }

    public void appendInfo (String info) {
        if (info != null && this.info != null) {
            this.info = this.info + " " + info;
        } else if (info != null && this.info == null) {
            this.info = info;
        } else if (info == null && this.info == null) {
            this.info = null;
        } else {
            this.info = this.info;
        }
    }

    public void setInfo (String infos) {
        this.info = infos;
    }

    public String getAllInfo(){
        StringBuilder sB = new StringBuilder();
        if (info != null) {
            sB.append(info);
        }
        if (nazUliceInfo != null) {
            sB.append(nazUliceInfo);
        }
        if (terCisInfo != null) {
            sB.append(terCisInfo);
        }
        if (nazAkceInfo != null) {
            sB.append(nazAkceInfo);
        }
        if (cisOrientacniInfo != null) {
            sB.append(cisOrientacniInfo);
        }
        if (newNazUliceInfo != null) {
            sB.append(newNazUliceInfo);
        }
        if (newTerCisInfo != null) {
            sB.append(newTerCisInfo);
        }
        if (newNazAkceInfo != null) {
            sB.append(newNazAkceInfo);
        }
        if (newCisOrientacniInfo != null) {
            sB.append(newCisOrientacniInfo);
        }
        return sB.toString();
    }

    public String getAllInfoForOld(){
        StringBuilder sB = new StringBuilder();
        if (info != null) {
            sB.append(info);
        }
        if (nazUliceInfo != null) {
            sB.append(nazUliceInfo);
        }
        if (terCisInfo != null) {
            sB.append(terCisInfo);
        }
        if (nazAkceInfo != null) {
            sB.append(nazAkceInfo);
        }
        if (cisOrientacniInfo != null) {
            sB.append(cisOrientacniInfo);
        }
       
        return sB.toString();
    }

    public int getRow () {
        return row;
    }

    public void setRow (int row) {
        this.row = row;
    }

    public int getSheet () {
        return sheet;
    }

    public void setSheet (int sheet) {
        this.sheet = sheet;
    }

    public String toStringAsTCO() {
        StringBuilder sB = new StringBuilder();
        if (nazAkce != null) {
            sB.append(nazAkce);
        } else {
            sB.append("null");
        }
        sB.append(", ");
        if (nazUlice != null) {
            sB.append(nazUlice);
        } else {
            sB.append("null");
        }
        sB.append(", ");
        if (cisOrientacni != null) {
            boolean first = true;
            for (Iterator<Integer> it = cisOrientacni.iterator() ;it.hasNext() ;) {
                int j = it.next();
                if (first) {
                    first = false;
                    sB.append(j);
                } else {
                    sB.append(", ").append(j);
                }
            }
        } else {
            sB.append("null");
        }
        sB.append(", ");
        if (terCis != null) {
            SimpleDateFormat sdf = new SimpleDateFormat("dd. MM. yyyy");
            sB.append(sdf.format(terCis));
        } else {
            sB.append("null");
        }
        sB.append(". ");
        return sB.toString();
    }
    public String toStringAsTCOWithDotEnd() {
        StringBuilder sB = new StringBuilder();
        if (nazAkce != null) {
            sB.append(nazAkce);
        } else {
            sB.append("null");
        }
        sB.append(", ");
        if (nazUlice != null) {
            sB.append(nazUlice);
        } else {
            sB.append("null");
        }
        sB.append(", ");
        if (cisOrientacni != null) {
            boolean first = true;
            for (Iterator<Integer> it = cisOrientacni.iterator() ;it.hasNext() ;) {
                int j = it.next();
                if (first) {
                    first = false;
                    sB.append(j);
                } else {
                    sB.append(", ").append(j);
                }
            }
        } else {
            sB.append("null");
        }
        sB.append(", ");
        if (terCis != null) {
            SimpleDateFormat sdf = new SimpleDateFormat("dd. MM. yyyy");
            sB.append(sdf.format(terCis));
        } else {
            sB.append("null");
        }
        sB.append(" ");
        return sB.toString();
    }

}
